package com.yoo.ons.api

import com.framework.network.remote.BaseResponse
import com.yoo.chat.kit.model.ActionModel
import com.yoo.ons.model.HomeListModel
import com.yoo.ons.model.IMTokenModel
import com.yoo.ons.model.PolicyModel
import com.yoo.ons.model.ServerUserInfoModel
import com.yoo.ons.model.UserInfoBaseModel
import com.yoo.chat.kit.entity.IMParamsEntity
import com.yoo.module_base.view.tag.TagModel
import com.yoo.ons.model.ConfigsEquityModel
import com.yoo.ons.model.ConversationInfoModel
import com.yoo.ons.model.LoginResultModel
import com.yoo.ons.model.MatchLikeModel
import com.yoo.ons.model.UserInfoModel
import com.yoo.ons.model.PersonAlbumModel
import com.yoo.ons.model.PictureManagerModel
import com.yoo.ons.model.PremiumModel
import com.yoo.ons.model.QueryBenefitsModel
import com.yoo.ons.model.RegisterDispositionModel
import com.yoo.ons.model.UserAccountModel
import com.yoo.ons.model.WlmListModel
import com.yoo.ons.model.WlmSubListModel
import io.reactivex.Single
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.Path
import retrofit2.http.QueryMap

/**
 * @ClassName: ApiService
 * @Description:
 * @Author: You
 */
interface ApiService {


    /**
     * 获取协议接口
     */
    @POST("ons/api/config/list/by/code")
    fun postPolicy(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<PolicyModel>>

    /**
     * 获取客服信息接口
     */
    @POST("ons/api/config/list/by/code")
    fun postServerUserInfo(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<List<ServerUserInfoModel>>>

    /**
     * 获取ppv开关接口
     */
    @POST("ons/api/config/list/by/code")
    fun postEquityConfig(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<ConfigsEquityModel>>


    /**
     * 获取首页列表数据接口
     */
    @POST("ons/api/home/page/list")
    fun postHomeList(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<HomeListModel>>

    /**
     * 获取wlm列表数据
     */
    @POST("ons/api/users/wlm/list")
    fun postWLMList(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<WlmListModel>>


    /**
     * 获取IM凭证接口
     */
    @POST("ons/api/im/get/token")
    fun postIMToken(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<IMTokenModel>>

    /**
     * 用户行为接口
     */
    @POST("ons/api/users/add/action")
    fun postAddAction(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<ActionModel>>

    /**
     * 用户注销接口
     */
    @POST("ons/api/app/logout")
    fun postAuthDelete(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<String>>

    /**
     * 获取是否回归用户接口
     */
    @GET("ons/api/app/status/check")
    fun postCheckLogOut(@QueryMap map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<String>>

    /**
     * 获取用户的基本信息接口
     */
    @POST("ons/api/users/getUserInfo")
    fun postUserInfoBase(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<UserInfoBaseModel>>

    /**
     * 获取用户信息接口
     */
    @POST("ons/api/users/info/query")
    fun postUserInfo(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<UserInfoModel>>

    /**
     * i like数量接口
     */
    @GET("ons/api/user/likes/total")
    fun getUserLikeCount(@QueryMap map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<Int>>

    /**
     * 权益查询接口
     */
    @POST("api/member/benefits/list")
    fun postQueryBenefits(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<List<QueryBenefitsModel>>>

    /**
     * 获取会员页面接口
     */
    @POST("ons/api/sku/subscription")
    fun postPremiumSubscription(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<PremiumModel>>

    /**
     * 用户账号绑定信息接口
     */
    @POST("ons/api/users/account/info/get")
    fun postAuthAccount(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<UserAccountModel>>

    /**
     * 修改用户信息接口
     */
    @POST("ons/api/users/info/modify")
    fun postChangeUserInfo(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<UserInfoModel>>

    /**
     * 获取兴趣列表接口
     */
    @POST("ons/api/users/interests")
    fun postUserInterests(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<ArrayList<TagModel>>>

    /**
     * 登录接口
     */
    @POST("ons/api/app/logon")
    fun postLogin(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<LoginResultModel>>

    /**
     * 账号绑定接口
     */
    @POST("ons/api/users/account/bind")
    fun postAccountBind(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<LoginResultModel>>

    /**
     * 账号解绑接口
     */
    @POST("ons/api/users/account/remove")
    fun postRemoveAccount(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<LoginResultModel>>

    /**
     * 注册配置接口
     */
    @POST("ons/api/register/init")
    fun postRegisterDisposition(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<RegisterDispositionModel>>

    /**
     * 注册接口
     */
    @POST("ons/api/users/init")
    fun postRegister(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<UserInfoModel>>

    /**
     * 照片修改接口
     */
    @POST("ons/api/images/modify")
    fun postChangeImage(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<PictureManagerModel>>

    /**
     * 能否发送私信接口
     */
    @POST("ons/api/chats/try/send/msg")
    fun postTryToSend(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<String>>

    /**
     * 打开私聊页面接口
     */
    @POST("ons/api/chat/openchat")
    fun postOpenChatPage(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<IMParamsEntity>>

    /**
     * 权益消费接口
     */
    @POST("ons/api/benefits/consume")
    fun postReduceBenefits(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<String>>

    /**
     * 获取fc会话随机消息
     */
    @POST("ons/api/config/list/by/code")
    fun postFlashChatMsg(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<String>>

    /**
     * 获取我的喜欢列表数据
     */
    @POST("ons/api/user/likes/list")
    fun postMyLikeList(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<List<WlmSubListModel>>>

    /**
     * 个人喜欢接口
     */
    @POST("ons/api/users/add/wlm")
    fun postUserAddWlm(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<MatchLikeModel>>

    /**
     * 获取用户列表的标识接口
     */
    @POST("ons/api/im/session/list")
    fun postConversationList(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<List<ConversationInfoModel>>>

    /**
     * 上传wifi信息接口
     */
    @POST("ons/api/device/add/info")
    fun postAddDeviceInfo(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<String>>

    /**
     * 个人相册接口
     */
    @POST("ons/api/users/albums/list")
    fun postPersonAlbums(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<PersonAlbumModel>>

    /**
     * 个人相册上传接口
     */
    @POST("ons/api/users/albums/add")
    fun postPersonAlbumsAdd(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<PictureManagerModel>>

    /**
     * 个人相册删除接口
     */
    @POST("ons/api/users/image/remove")
    fun postPersonAlbumsRemove(@Body map: @JvmSuppressWildcards HashMap<String, Any>): Single<BaseResponse<PictureManagerModel>>
}

